package com.itheima.edu.info.manager.dao;

import com.itheima.edu.info.manager.domain.Cleaner;

/*
    库管类
        1.核心职责是管理我们的数据仓库--数组:增删改查
        2.这里的所有方法【功能】都是给业务员用
 */
public class CleanerDao {
    //1.创建一个长度为5的清洁工数组,用来充当数据库仓库
    private static Cleaner[] cleaners = new Cleaner[5];

    public boolean addCleaner(Cleaner cleaner) {
        //2.先定义一个标记:int index = -1,表示当前数组中没有索引位置可以用来存放要添加的清洁工对象
        int index = -1;
        //3.遍历数组
        for (int i = 0; i < cleaners.length; i++) {
            //获取当前索引的位置的元素
            Cleaner clean = cleaners[i];
            if (clean == null) {
                //能进来说明有位置空缺,可以用来存放要添加的清洁工对象,这时我们就使用index记录下当前的索引
                index = i;
                //结束循环
                break;
            }
        }
        //4.出了循环,根据index的值就能确定本次要添加的清洁工对象能不能往数组里存
        if (index == -1) {
            //装满了,返回false,添加失败
            return false;
        } else {
            //没有装满,添加成功,返回true
            //将要添加的清洁工对象赋值到数组的index索引位置
            cleaners[index] = cleaner;
            return true;
        }
    }

    public Cleaner[] findAllStudent() {
        return cleaners;
    }
    //删除清洁工
    public void deleteCleanerByCid(String delCid) {
        //查找id在容器中所在的索引位置
        int index = getIndex(delCid);
        //将该索引位置,使用null进行覆盖
        cleaners[index] = null;
    }
    //查找工号对应的清洁工在清洁工数组中的索引位置
    private int getIndex(String delCid) {
        //定义一个标记:index = -1,默认要查找的id在数组中不存在
        int index = -1;
        for (int i = 0; i < cleaners.length; i++) {
            Cleaner cleaner = cleaners[i];
            if(cleaner!=null&&cleaner.getId().equals(delCid)){
                index = i;
                break;
            }
        }
        return index;
    }
    //修改清洁工
    public void updateCleanerByCid(String upCid, Cleaner newcleaner) {
        //查找upTid在数组中的索引位置
        int index = getIndex(upCid);
        //使用newTeacher去替换该索引位置的原有信息,从而实现修改
        cleaners[index] = newcleaner;
    }
}
